The present invention relates generally to high-speed communication control systems, and more particularly to a communication control system which is suitable for use in a local area network (LAN) and a method of controlling the same.
Heretofore, communication controllers for connecting high-speed transmission lines, such as a LAN to personal computers and workstations have been classified into intelligent and nonintelligent types based on differences in their structure.
The intelligent type communication controller includes a bus controller for connecting the communication controller to a bus to which a system processor and a memory are connected, a network controller for transmitting and receiving frame data while directly controlling the transmission line, a local processor operating in accordance with a low hierarchical protocol, and a local memory for storing communication data. The communication controller performs processes relative to, for example, an OSI reference model in a second or lower layer as occasion demands and leaves what is in the third layer or higher to the system processor. The transmission line and the system memory are connected via the communication controller and a bus. The frame data is stored first in the local memory within the communication controller before being copied by the system processor into the system memory. In the case of a high-speed LAN having a transmission capacity as great as 100 Mbps with a FDDI (Fiber Distributed Data Interface), for example, the concentrated load which is applied to the bus can therefore be lightened in comparison with the nonintelligent type of communication controller designed to directly transfer such frame data via the bus to the system memory; consequently, resultant underrun and overrun errors can be prevented. Japanese Patent Laid-Open No. 32650/1990, for example, discloses an arrangement as noted above.
The nonintelligent type communication controller, which has no local processor, includes a network controller for transmitting and receiving frame data while directly controlling the transmission line, and a local memory for storing communication data. The network controller performs processes relative to, for example, the OSI reference models in the first layer (physical layer) and 1.5 layer (media access control) in real time in harmony with the transmission speed of the transmission line. The data frame is stored by the network controller first into the local memory before being copied by the system processor into the system memory. Consequently, the nonintelligent type of communication controller exhibits superior performance when compared with the intelligent type to the extent that the low hierarchical layer is processed by the local processor and is made less costly since the local processor is not included therein. This communication controller has been referred to in, for example, xe2x80x9cPerformance Evaluation for High Speed Protocol Processing At Workstationxe2x80x9d 1992. B-433, Kitamura et al, Collection of Papers at Autumn Meeting of Japan Electronic Data Communication Society, and xe2x80x9cAn Analysis of TCP Processing Overhead,xe2x80x9d June, 1989, David D. Clark et al, IEEE Communication Magazine.
Notwithstanding, the need for a data copy operation between the system and local memories degrades the performance efficiency in the prior art and data transfer by means of the system processor also imposes a heavier load on the communication controller.
There also arises another problem which occurs even when the communication controller is used instead of the system processor to copy data from the local memory into the system memory. When, for example, the buffer dealt with by the communication controller differs in format from what is dealt with by the protocol program, it is necessary to shift the data to accommodate this difference. Taking signal reception as an example, the communication controller transfers data to the buffer provided in the system memory, the data being formatted by the communication controller itself, and then the data is shifted to the buffer dealt with by the protocol program. The buffer dealt with by the communication controller is what is specifically used for communication controller hardware in which a predetermined size is assigned to a fixed address, whereas the buffer dealt with by the protocol program is such that a memory is effectively utilized by connecting a plurality of small size areas, for example, by means of a chain and varying the number of areas in accordance with a frame length. Consequently, it takes time to effect the buffer-to-buffer transfer of data, thus lowering the performance to a significant extent.
These problems still exist in multi-protocol processing systems for processing a plurality of communication protocols and multi-network control systems for supporting a plurality of networks.
An object of the present invention is to provide a highspeed communication control system for making possible direct data transfer between communication hardware for controlling a transmission line and software for processing a communication protocol, and a method of controlling the same.
In order to accomplish the above object, a communication control system according to the present invention is provided with a protocol program for use in processing a communication protocol, a protocol buffer which is managed by the protocol program, a communication controller for transmitting and receiving data while controlling a transmission line, and a communication buffer which is managed by the communication controller. Further, a system memory is provided with a shared buffer having the functions of the protocol and communication buffers in common so that frame data from the transmission line may be transmitted and received without making useless copies between the communication protocol and the communication controller.
Therefore, no excessive movement of data is required as the functions of the protocol and communication buffers are to be commonly used and high-speed data communication can thus be implemented.
Another feature of the present invention lies in the fact that the shared buffer is provided with a plurality of areas, whereby it is made possible to transmit and receive frames of data continuously and to divide one frame of data into a plurality of data parts for storage.
The communication controller employed in one embodiment of the present invention is of the nonintelligent type having only a network controller for directly controlling the transmission line and a bus controller for controlling a bus. In this case, frame data is directly transferred from the transmission line to a shared buffer of the system memory without buffering it on its way, so that the frame data may be transferred directly from the transmission line to the communication protocol and vice versa.
Such a communication controller may also be of the intelligent type having a local processor and a local memory in addition to a network controller for directly controlling the transmission line and the bus controller for controlling the bus.
The intelligent type communication controller operates first to hold the frame data received from the transmission line in the local memory in the communication controller and then to transfer it to the shared buffer of the system memory. Therefore, unlike the nonintelligent type of communication controller, the concentrated load applied to the bus can be lightened and resulting underrun and overrun errors can thus be prevented. Moreover, the frame data can be transferred directly from the communication controller to the communication protocol and vice versa.
The present invention also features the structure of the shared buffer, including a data buffer for storing data, a protocol buffer descriptor for use when the communication protocol program is executed to manage the data buffer and a communication buffer descriptor for use when the communication controller is used to manage the data buffer, whereby the protocol and communication buffer descriptors may be used in a queue structure.
The present invention further features the addition of a means for selecting a protocol to the shared buffer so as to make a plurality of communication protocols processible, whereby the frame data may directly be transferred from the transmission line to the plurality of communication protocols and vice versa.
The present invention still further features the provision of a plurality of transmission lines and shared buffers and the addition of a means for selecting the transmission line for the communication protocol program so as to make transmission data transferable to the corresponding transmission line.
With the aforesaid means, the frame data may be transferred directly from the communication protocol to the plurality of transmission lines and vice versa.
The present invention still further features the utilization of means for selecting the transmission line in a manner that allows the communication protocol program to receive, process or manipulate frame data received from the transmission line, and to send out that data to another transmission line without the buffer-to-buffer movement of the data.
With the aforesaid means, the frame data may be passed through the transmission lines one after another without a useless buffer-to-buffer movement of data. A high-speed bridge, router and a gateway can thus be materialized.
The present invention still further features a processor having two processing units A, B operating asynchronously and independently, wherein a shared buffer to be commonly used for two buffers, the one managed by the processing unit A and the other by the processing unit 8, is provided therebetween, so that high-speed data communication is made possible without making useless copies of data in both processing units.
In the processor above, a buffer is commonly used for two independent processing units and high-speed data communication is made possible as no excessive movement of data is required.
As set forth above, excessive buffer-to-buffer movement of data can be dispensed with as the buffer is shared between the transmission line and the protocol or between the two processing units. Therefore, the present invention has the effect of not only improving the throughput of the total communication system, but also decreasing the load of the system processor.